{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Generative Models"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Why generative models?\n",
    "\n",
    "Humans can think of marvelous things. Look at Mozart's ability to create music, and Van Gough's prowess to paint! In machine learning words, we call these people **good generators**. They are able to generate stuff that are so good it's called art.\n",
    "\n",
    "Generative models strive to do the same for computers. It's very different from the normal classification/regression problem (even though the models still use them under the hood), because in classification/regression, you are reducing the input (an image, a voice command) to something simpler. For classification, it's a label. For regression, it's a handful of numbers. While generative models want to create output that are complicated, and real."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## How do generative models generate things?\n",
    "\n",
    "A computer can simply generate things because it would look like garbage, a few real world data need to be used to tell the machine what are good real world examples.\n",
    "\n",
    "In training the generator, we usually use several ways to _correct_ the behavior of the model by providing incentive. For AE/VAE it's the reconstruction loss. For GAN it's the discriminator's loss. You don't need to know what it means yet, they will be introduced in the following sections, just have to bear in mind that even generative models require real world examples (contrary to common believes)."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
